package org.yi.fc.entity;

import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.jfinal.plugin.activerecord.Model;

/**
 * @author ilgqh
 * 系统参数实体
 */
public class FSysParam extends Model<FSysParam> {

	private static final long serialVersionUID = -4939271899088560415L;

	private static final Logger logger = LoggerFactory.getLogger(FSysParam.class);
	
	/**
	 * 系统参数缓存
	 */
	private final static List<FSysParam> list = new ArrayList<FSysParam>();
	
	public static FSysParam dao = new FSysParam();
	
	public FSysParam(){

	}
	
	/**
	 * 根据系统参数代码获取系统参数实体
	 * @param code		系统参数代码
	 * @return
	 */
	public FSysParam getFSysParamByCode(String code){
		Preconditions.checkArgument(Strings.isNullOrEmpty(code), "根据系统参数代码获取系统参数实体时，系统参数代码不能为空");
		return null;
	}
	
	/**
	 * 根据系统参数名称获取系统参数实体
	 * @param name		系统参数名称
	 * @return
	 */
	public FSysParam getFSysParamByName(String name){
		Preconditions.checkArgument(Strings.isNullOrEmpty(name), "根据系统参数名称获取系统参数实体时，系统参数名称不能为空");
		return null;
	}
	
	/**
	 * 获取所有有效的系统参数实体
	 * @param isReload    是否重新加载系统参数缓存
	 * @return
	 */
	public List<FSysParam> getAllEffectiveFSysParam(boolean isReload){
		if(isReload){
			logger.debug("reloading sysparam...");
			list.clear();
			list.addAll( find("select * from f_sysparam where isEffective = 1") );
		}
		
		if(list.size() == 0){
			list.addAll( find("select * from f_sysparam where isEffective = 1") );
		}
		
		return list;
	}
	
}
